CSS - Estilo Inline(em linha) e Block (em bloco)
Você perguntaria, porque eu faria isso, alterar o estilo de exibição de
uma tag de inline para block. A resposta é : Design. Com o estilo
block eu posso definir estilo como altura, largura, alinhamento etc.
O browser exibe cada elemento de acordo com a natureza do elemento.
Se é um parágrafo, como num texto, ele inalgura uma nova linha abaixo, escreve o que foi solicitado.
Este é um exemplo de elemento tipo bloco...por sua natureza são separadores ou divisores de layout.
Mas se estamos exibindo um botão, se eu quiser exibir outro botão o correto seria um ao lado do outro.
E é isso que o browser faz. Chamamos esses elementos de inline e são agrupados na mesma linha, se couberem.
No entanto, há ocasiões que desejamos alterar esse layout default do browser.
Estilo bloco
O estilo bloco ocupa uma linha de maneira exclusiva pode default.
Se o estilo do elemento for em bloco e ao posicionar ele dentro da página já tiver um outro elemento a sua esquerda este será exibido na linha posterior.
Sempre que o elemento em bloco é exibido ele ocupará toda a linha e o o próximo
elemento será exibido na linha posterior.
Exemplo: 1 parágrafos em seguida:
Como foi definido:
Este é um texto antes dos parágrafos.
<p>Este é o p1 com um estilo default(block).</p>
Este é um texto no meio dos parágrafos.
<p>Este é o p2 com um estilo default(block).</p>
e este é um texto depois dos parágrafos.
Como o browser exibe:
Este é um texto antes dos parágrafos.
Este é o p1 com um estilo default(block).
Este é um texto no meio dos parágrafos.
Este é o p2 com um estilo default(block).
e este é um texto depois dos parágrafos.
Então antes de exibir o parágrafo o browser verifica se esta sendo exibido no início
da linha. Se está, sem problemas, renderiza o elemento. Mas se já existe algo à
esquerda renderizado o parágrafo será movido para o inicio da linha de baixo.
Exemplo 2 : Estilo bloco seguido pelo inline
Como foi definido:
<style type="text/css">
.estiloinline {
display: inline;
}
</style>
Este é um texto antes dos parágrafos.
<p>Este é o parágrafo 1 com um estilo default(block).</p>
Este é um texto nom meio dos parágrafos.
<p class="estiloinline">Este é o paragráfo 2 com um estilo inline.</p>
e este é um texto depois dos parágrafos.
Como o browser exibe:
Este é um texto antes dos parágrafos.
Este é o parágrafo 1 com um estilo default(block).
Este é um texto nom meio dos parágrafos.
Este é o paragráfo 2 com um estilo inline.
e este é um texto depois dos parágrafos.
Nenhuma surpresa, o primeiro parágrafo foi exibido como um bloco e o segundo como um em linha.
Exemplo 3 : Estilo bloco seguido por dois estilos inline
Temos algum texto na linha e...
Este é o p1 com um estilo default(block).
Este é o p2 com um estilo inline.
Este é o p3 com um estilo inline.
e este é um texto depois dos parágrafos.
Nenhuma surpresa, o primeiro parágrafo foi exibido como um bloco e o segundo e terceiro como um em linha.
Exemplo 4 : Estilo inline seguido pelo inline
Este é o p1 com um estilo inline.
Este é o p2 com um estilo inline.
Este é o p3 com um estilo inline.
Nenhuma surpresa, todos são inline e são exibidos na mesma linha.
Exemplo 5 : Estilo inline seguido pelo block
Este é o p1 com um estilo inline.
Este é o p2 com um estilo block.
Nenhuma surpresa, antes de exibir o em bloco como existe um elemento à esquerda ele o coloca na próxima linha.
Portanto os
elementos estilo inline serão exibidos uns a direita do outro se for possível
Os
elementos em bloco são exibidos na mesma linha se na exibição coincidir com o início da linha
ou serão exibidos na próxima linha se já existir algo à esquerda na mesma linha. Outro fato importante
é que mesmo que haja espaço para renderizar o próximo elemento se o elemento anterior for tipo
bloco o próximo elemento sempre será renderizado na próxima linha.
Testando em bloco em linha com divs
Note que as divs como os parágrafos são elementos, por default, em bloco
Outra coisa a ser notada é que ao colocar o estilo inline os parâmetros width
e lenght da div são ignorados e ocupam o justo espaço do elemento.
Estilo bloco
Div1-Estilo default(bloco)
Div2-Estilo default(bloco)
Fez o que era esperado, sem novidades.
Estilo bloco seguido pelo inline
Div1-Estilo default(bloco)
Div2-Estilo inline
Importante : A Div2 deveria ter 100px de largura por 100px de altura (definidos pela css) mas o inline quebrou
essa regra da css.
Estilo bloco seguido pelo inline-inline
Div1-Estilo default(bloco)
Div2-Estilo inline
Div3-Estilo inline
Importante :
A Div2 e Div3 deveriam ter 100px de largura por 100px de altura (definidos pela css) mas o
inline quebrou essa regra da css. Isso se dá porque quando se colocar elementos inline cada um ocupará o
espaço que precisa, nem mais nem menos
.
Estilo inline seguido pelo estilo bloco
Div1-Estilo inline
Div2-Estilo default(bloco)
Como o o esperado ao exibir um elemento tipo bloco numa linha que já tinha elementos à esquerda a
exibição foi feita na linha seguinte.